package com.xymtop.sqlcater.core.sql.sqlparser.tosql.life;

import com.xymtop.sqlcater.core.sql.sqlparser.tosql.entity.sql.BaseNode;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class BaseNodeBuilder {

    //需要的读取的文件的内容
   private  List<String> content = new ArrayList<>();

   //构建出来的节点内容
    private  List<BaseNode> baseNodeList = new ArrayList<>();

    public  BaseNodeBuilder build(){
        if(this.content == null){
            return null;
        }

        //下面开始构建
        for(String str : this.content){
            String[] strs = str.split(":");


            //判断是否为json节点
            if(strs.length>1){
                BaseNode baseNode = new BaseNode();
                baseNode.setKey(strs[0]);

                //防止后面的逗号
                String strTemp = strs[1];
                if(strTemp.endsWith(",")){
                 strs[1] = strTemp.substring(0,strTemp.length()-1);
                }

                //去除两边的引号
                String[] split = strs[1].split("\"");
                if(split.length>1){

                    //表示有引号
                    strs[1] = split[1];
                }
                baseNode.setValue(strs[1]);
                this.baseNodeList.add(baseNode);
            }
        }
        return this;
    }


    //添加需要的数据
    public static BaseNodeBuilder add(List<String> content){
        BaseNodeBuilder baseNodeBuilder = new BaseNodeBuilder();

        baseNodeBuilder.content = content;

        return baseNodeBuilder;
    }
}
